package handlers

type apiJsonMessage struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data,omitempty"`
}

// New...
func NewJsonMessage() *apiJsonMessage {
	return &apiJsonMessage{0, "ok", nil}
}

func (msg *apiJsonMessage) Success() *apiJsonMessage {
	msg.Code = 0
	msg.Message = "ok"
	return msg
}

func (msg *apiJsonMessage) Error() *apiJsonMessage {
	msg.Code = -1
	msg.Message = "error"
	return msg
}

func (msg *apiJsonMessage) WithCode(code int) *apiJsonMessage {
	msg.Code = code
	return msg
}

func (msg *apiJsonMessage) WithMessage(message string) *apiJsonMessage {
	msg.Message = message
	return msg
}

func (msg *apiJsonMessage) WithData(data interface{}) *apiJsonMessage {
	msg.Data = data
	return msg
}

type jsonVertexMessage struct {
}

type jsonEdgeMessage struct {
}

type jsonSubgraphMessage struct {
}
